package ufc.qx.si;

import java.io.Serializable;


public class Despesa implements Serializable{
	
	private Long id;
	private String siglaUnidadeFederativa;
	private String siglaPartido;
	private String descricaoCargo;
	private String nomeCandidato;
	private int numeroCandidato;
	private String data;
	private String documentoFornecedor;
	private String siglaUnidadeFederativaFornecedor;
	private String nomeFornecedor;
	private double valor;
	private String tipoDespesa;
	
	public Despesa(){
		this.id = 0L;
		this.siglaUnidadeFederativa = "";
		this.siglaPartido = "";
		this.descricaoCargo = "";
		this.nomeCandidato = "";
		this.numeroCandidato = 0;
		this.data = "";
		this.documentoFornecedor = "";
		this.siglaUnidadeFederativaFornecedor = "";
		this.nomeFornecedor = "";
		this.valor = 0;
		this.tipoDespesa = "";
	}

	public Long getId() {
		return id;
	}
	
	public void setId(Long id) {
		this.id = id;
	}
	
	public String getSiglaUnidadeFederativa() {
		return siglaUnidadeFederativa;
	}
	
	public void setSiglaUnidadeFederativa(String siglaUnidadeFederativa) {
		this.siglaUnidadeFederativa = siglaUnidadeFederativa;
	}
	
	public String getSiglaPartido() {
		return siglaPartido;
	}
	
	public void setSiglaPartido(String siglaPartido) {
		this.siglaPartido = siglaPartido;
	}
	
	public String getDescricaoCampo() {
		return descricaoCargo;
	}
	
	public void setDescricaoCampo(String descricaoCampo) {
		this.descricaoCargo = descricaoCampo;
	}
	
	public String getNomeCandidato() {
		return nomeCandidato;
	}
	
	public void setNomeCandidato(String nomeCandidato) {
		this.nomeCandidato = nomeCandidato;
	}
	
	public int getNumeroCandidato() {
		return numeroCandidato;
	}
	
	public void setNumeroCandidato(int numeroCandidato) {
		this.numeroCandidato = numeroCandidato;
	}
	
	public String getData() {
		return data;
	}
	
	public void setData(String data) {
		this.data = data;
	}
	
	public String getDocumentoFornecedor() {
		return documentoFornecedor;
	}
	
	public void setDocumentoFornecedor(String documentoFornecedor) {
		this.documentoFornecedor = documentoFornecedor;
	}
	
	public String getSiglaUnidadeFederativaFornecedor() {
		return siglaUnidadeFederativaFornecedor;
	}
	
	public void setSiglaUnidadeFederativaFornecedor(
			String siglaUnidadeFederativaFornecedor) {
		this.siglaUnidadeFederativaFornecedor = siglaUnidadeFederativaFornecedor;
	}
	
	public String getNomeFornecedor() {
		return nomeFornecedor;
	}
	
	public void setNomeFornecedor(String nomeFornecedor) {
		this.nomeFornecedor = nomeFornecedor;
	}
	
	public double getValor() {
		return valor;
	}
	
	public void setValor(double valor) {
		this.valor = valor;
	}
	
	public String getTipoDespesa() {
		return tipoDespesa;
	}
	
	public void setTipoDespesa(String tipoDespesa) {
		this.tipoDespesa = tipoDespesa;
	}

	@Override
	public String toString() {
		return "Despesa [id=" + id + ", siglaUnidadeFederativa="
				+ siglaUnidadeFederativa + ", siglaPartido=" + siglaPartido
				+ ", descricaoCargo=" + descricaoCargo + ", nomeCandidato="
				+ nomeCandidato + ", numeroCandidato=" + numeroCandidato
				+ ", data=" + data + ", documentoFornecedor="
				+ documentoFornecedor + ", siglaUnidadeFederativaFornecedor="
				+ siglaUnidadeFederativaFornecedor + ", nomeFornecedor="
				+ nomeFornecedor + ", valor=" + valor + ", tipoDespesa="
				+ tipoDespesa + ", getId()=" + getId()
				+ ", getSiglaUnidadeFederativa()="
				+ getSiglaUnidadeFederativa() + ", getSiglaPartido()="
				+ getSiglaPartido() + ", getDescricaoCampo()="
				+ getDescricaoCampo() + ", getNomeCandidato()="
				+ getNomeCandidato() + ", getNumeroCandidato()="
				+ getNumeroCandidato() + ", getData()=" + getData()
				+ ", getDocumentoFornecedor()=" + getDocumentoFornecedor()
				+ ", getSiglaUnidadeFederativaFornecedor()="
				+ getSiglaUnidadeFederativaFornecedor()
				+ ", getNomeFornecedor()=" + getNomeFornecedor()
				+ ", getValor()=" + getValor() + ", getTipoDespesa()="
				+ getTipoDespesa() + ", getClass()=" + getClass()
				+ ", hashCode()=" + hashCode() + ", toString()="
				+ super.toString() + "]";
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((data == null) ? 0 : data.hashCode());
		result = prime * result
				+ ((descricaoCargo == null) ? 0 : descricaoCargo.hashCode());
		result = prime
				* result
				+ ((documentoFornecedor == null) ? 0 : documentoFornecedor
						.hashCode());
		result = prime * result
				+ ((nomeCandidato == null) ? 0 : nomeCandidato.hashCode());
		result = prime * result
				+ ((nomeFornecedor == null) ? 0 : nomeFornecedor.hashCode());
		result = prime * result + numeroCandidato;
		result = prime * result
				+ ((siglaPartido == null) ? 0 : siglaPartido.hashCode());
		result = prime
				* result
				+ ((siglaUnidadeFederativa == null) ? 0
						: siglaUnidadeFederativa.hashCode());
		result = prime
				* result
				+ ((siglaUnidadeFederativaFornecedor == null) ? 0
						: siglaUnidadeFederativaFornecedor.hashCode());
		result = prime * result
				+ ((tipoDespesa == null) ? 0 : tipoDespesa.hashCode());
		long temp;
		temp = Double.doubleToLongBits(valor);
		result = prime * result + (int) (temp ^ (temp >>> 32));
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Despesa other = (Despesa) obj;
		if (data == null) {
			if (other.data != null)
				return false;
		} else if (!data.equals(other.data))
			return false;
		if (descricaoCargo == null) {
			if (other.descricaoCargo != null)
				return false;
		} else if (!descricaoCargo.equals(other.descricaoCargo))
			return false;
		if (documentoFornecedor == null) {
			if (other.documentoFornecedor != null)
				return false;
		} else if (!documentoFornecedor.equals(other.documentoFornecedor))
			return false;
		if (nomeCandidato == null) {
			if (other.nomeCandidato != null)
				return false;
		} else if (!nomeCandidato.equals(other.nomeCandidato))
			return false;
		if (nomeFornecedor == null) {
			if (other.nomeFornecedor != null)
				return false;
		} else if (!nomeFornecedor.equals(other.nomeFornecedor))
			return false;
		if (numeroCandidato != other.numeroCandidato)
			return false;
		if (siglaPartido == null) {
			if (other.siglaPartido != null)
				return false;
		} else if (!siglaPartido.equals(other.siglaPartido))
			return false;
		if (siglaUnidadeFederativa == null) {
			if (other.siglaUnidadeFederativa != null)
				return false;
		} else if (!siglaUnidadeFederativa.equals(other.siglaUnidadeFederativa))
			return false;
		if (siglaUnidadeFederativaFornecedor == null) {
			if (other.siglaUnidadeFederativaFornecedor != null)
				return false;
		} else if (!siglaUnidadeFederativaFornecedor
				.equals(other.siglaUnidadeFederativaFornecedor))
			return false;
		if (tipoDespesa == null) {
			if (other.tipoDespesa != null)
				return false;
		} else if (!tipoDespesa.equals(other.tipoDespesa))
			return false;
		if (Double.doubleToLongBits(valor) != Double
				.doubleToLongBits(other.valor))
			return false;
		return true;
	}
	
	
}
